<?php

/**
* stat.php
*
* @version 0.1a
* @copyright 2010 by badboy for BadNova
*/

define('INSIDE'  , true);
define('INSTALL' , false);

$badnova_root_path = './';
include($badnova_root_path . 'extension.inc');
include($badnova_root_path . 'common.' . $phpEx);

includeLang('stat');

// blocking non-users
if ($IsUserChecked == false) {
	includeLang('login');
	message($lang['Login_Ok'], $lang['log_numbreg']);
}

$parse = $lang;

// for who
if (isset($_POST['who'])){
   $who = $_POST['who'];
}elseif (isset($_GET['who'])){
   $who = $_GET['who'];
}else{
   $who = 1;
}
// for type
if (isset($_POST['type'])){
   $type = intval($_POST['type']);
}elseif (isset($_GET['type'])){
   $type = intval($_GET['type']);
}else{
   $type = 1;
}
// for range
if (isset($_POST['range'])){
   $range = intval($_POST['range']);
}elseif (isset($_GET['range'])){
   $range = intval($_GET['range']);
}else{
   $range = 1;
}


$parse['who']   = "<option value=\"1\"". (($who == 1) ? " SELECTED" : "") .">". $lang['stat_player'] ."</option>";
$parse['who']  .= "<option value=\"2\"". (($who == 2) ? " SELECTED" : "") .">". $lang['stat_allys']  ."</option>";

$parse['type']  = "<option value=\"1\"". (($type == 1) ? " SELECTED" : "") .">". $lang['stat_main']     ."</option>";
$parse['type'] .= "<option value=\"2\"". (($type == 2) ? " SELECTED" : "") .">". $lang['stat_fleet']    ."</option>";
$parse['type'] .= "<option value=\"3\"". (($type == 3) ? " SELECTED" : "") .">". $lang['stat_research'] ."</option>";
$parse['type'] .= "<option value=\"4\"". (($type == 4) ? " SELECTED" : "") .">". $lang['stat_building'] ."</option>";
$parse['type'] .= "<option value=\"5\"". (($type == 5) ? " SELECTED" : "") .">". $lang['stat_defenses'] ."</option>";

switch ($type) {
	case 1:
		$Order   = "total_points";
		$Points  = "total_points";
		$Counts  = "total_count";
		$Rank    = "total_rank";
		$OldRank = "total_old_rank";
	break;

	case 2:
		$Order   = "fleet_points";
		$Points  = "fleet_points";
		$Counts  = "fleet_count";
		$Rank    = "fleet_rank";
		$OldRank = "fleet_old_rank";
	break;

	case 3:
		$Order   = "tech_points";
		$Points  = "tech_points";
		$Counts  = "tech_count";
		$Rank    = "tech_rank";
		$OldRank = "tech_old_rank";
	break;

	case 4:
		$Order   = "build_points";
		$Points  = "build_points";
		$Counts  = "build_count";
		$Rank    = "build_rank";
		$OldRank = "build_old_rank";
	break;

	case 5:
		$Order   = "defs_points";
		$Points  = "defs_points";
		$Counts  = "defs_count";
		$Rank    = "defs_rank";
		$OldRank = "defs_old_rank";
	break;
	
	default: // same as case 1
		$Order   = "total_points";
		$Points  = "total_points";
		$Counts  = "total_count";
		$Rank    = "total_rank";
		$OldRank = "total_old_rank";
	break;
}
if ($who == 2) 
{
	$MaxAllys = doquery("SELECT COUNT(*) AS `count` FROM {{table}} WHERE 1;", 'alliance', true);
	if ($MaxAllys['count'] > 100) {
		$LastPage = floor($MaxAllys['count'] / 100);
	}
	$parse['range'] = "";
	for ($Page = 0; $Page <= $LastPage; $Page++) 
	{
		$PageValue      = ($Page * 100) + 1;
		$PageRange      = $PageValue + 99;
		$parse['range'] .= "<option value=\"". $PageValue ."\"". (($range == $PageValue) ? " SELECTED" : "") .">". $PageValue ."-". $PageRange ."</option>";
	}
	$parse['stat_header'] = parsetemplate(gettemplate('stat_alliancetable_header'), $parse);
	$start = floor($range / 100 % 100) * 100;
	$stats_sql	=	'SELECT s.*, a.id, a.ally_members, a.ally_tag, a.ally_name FROM {{table}}statpoints as s 
					INNER JOIN {{table}}alliance as a ON a.id = s.id_owner
					WHERE `stat_type` = 2 AND `stat_code` = 1
					ORDER BY `'. $Order .'` DESC LIMIT '. $start .',100;';
	$start++;
	$parse['stat_date']   = $game_config['stat_last_update'];
	$parse['stat_values'] = "";
	$query = doquery($stats_sql, '');
	while ($StatRow = mysql_fetch_assoc($query)) 
	{
		$parse['ally_rank']       = $start;
		if ( $StatRow[ $OldRank ] == 0 || $StatRow[ $Rank ] == 0) 
		{
			$rank_old				= $start;
			$QryUpdRank				= doquery("UPDATE {{table}} SET `".$Rank."` = '".$start."', `".$OldRank."` = '".$start."' WHERE `stat_type` = '1' AND `stat_code` = '1' AND `id_owner` = '". $StatRow['id_owner'] ."';" , "statpoints");
			$StatRow[ $OldRank ]	= $start;
			$StatRow[ $Rank ]	= $start;
		}	
		$ranking                  = $StatRow[ $OldRank ] - $StatRow[ $Rank ];
		if ($ranking == "0") {
			$parse['ally_rankplus']   = "<font color=\"#87CEEB\">*</font>";
		}
		
		if ($ranking < "0") {
			$parse['ally_rankplus']   = "<font color=\"red\">".$ranking."</font>";
		}
		
		if ($ranking > "0") {
			$parse['ally_rankplus']   = "<font color=\"green\">+".$ranking."</font>";
		}
		$parse['ally_tag']        = $StatRow['ally_tag'];
		$parse['ally_name']       = $StatRow['ally_name'];
		$parse['ally_mes']        = '';
		$parse['ally_members']    = $StatRow['ally_members'];
		$parse['ally_points']     = pretty_number( $StatRow[ $Order ] );
		$parse['ally_members_points'] =  pretty_number( floor($StatRow[ $Order ] / $StatRow['ally_members']) );
		$parse['stat_values']    .= parsetemplate(gettemplate('stat_alliancetable'), $parse);
		$start++;
	}

}
else
{
	$MaxUsers = doquery("SELECT COUNT(*) AS `count` FROM {{table}} WHERE `db_deaktjava` = '0';", 'users', true);
	if ($MaxUsers['count'] > 100) 
	{
		$LastPage = floor($MaxUsers['count'] / 100);
	}
	$parse['range'] = "";
	for ($Page = 0; $Page <= $LastPage; $Page++) 
	{
		$PageValue      = ($Page * 100) + 1;
		$PageRange      = $PageValue + 99;
		$parse['range'] .= "<option value=\"". $PageValue ."\"". (($range == $PageValue) ? " SELECTED" : "") .">". $PageValue ."-". $PageRange ."</option>";
	}

	$parse['stat_header'] = parsetemplate(gettemplate('stat_playertable_header'), $parse);

	$start = floor($range / 100 % 100) * 100;
	
	$stats_sql	=	'SELECT s.*, u.id, u.username, u.ally_id, u.ally_name FROM {{table}}statpoints as s 
					INNER JOIN {{table}}users as u ON u.id = s.id_owner
					WHERE `stat_type` = 1 AND `stat_code` = 1
					ORDER BY `'. $Order .'` DESC LIMIT '. $start .',100;';
	$query = doquery($stats_sql, '');
	$start++;
	$parse['stat_date']   =  date("d M Y - H:i:s",$game_config['stat_last_update']);
	$parse['stat_values'] = "";
	while ($StatRow = mysql_fetch_assoc($query)) 
	{
		$parse['player_rank']     = $start;
		if ( $StatRow[ $OldRank ] == 0 || $StatRow[ $Rank ] == 0) 
		{
			$rank_old				= $start;
			$QryUpdRank				= doquery("UPDATE {{table}} SET `".$Rank."` = '".$start."', `".$OldRank."` = '".$start."' WHERE `stat_type` = '1' AND `stat_code` = '1' AND `id_owner` = '". $StatRow['id_owner'] ."';" , "statpoints");
			$StatRow[ $OldRank ]	= $start;
			$StatRow[ $Rank ]	= $start;
		}	
		$ranking                  = $StatRow[ $OldRank ] - $StatRow[ $Rank ];
		if ($ranking == "0") 
		{
			$parse['player_rankplus'] = "<font color=\"#87CEEB\">*</font>";
		}
		
		if ($ranking < "0") 
		{
			$parse['player_rankplus'] = "<font color=\"red\">".$ranking."</font>";
		}
		
		if ($ranking > "0") 
		{
			$parse['player_rankplus'] = "<font color=\"green\">+".$ranking."</font>";
		}
		
		if ($UsrRow['id'] == $user['id'])
		{
			$parse['player_name']     = "<font color=\"lime\">".$StatRow['username']."</font>";
		} else {
			$parse['player_name']     = $StatRow['username'];
		}
		
		$parse['player_mes']      = "<a href=\"messages.php?mode=write&id=" . $StatRow['id'] . "\"><img src=\"" . $dpath . "img/m.gif\" border=\"0\" alt=\"". $lang['Ecrire'] ."\" /></a>";
		
		// INICIO FIX Enlace a alianzas en Estadisticas
		if ($UsrRow['ally_name'] == $user['ally_name']) 
		{
			$parse['player_alliance'] = "<a href=\"alliance.php?mode=ainfo&a=".$StatRow['ally_id']."\"><font color=\"#33CCFF\">".$StatRow['ally_name']."</font></a>";
		} 
		else 
		{
			$parse['player_alliance'] = "<a href=\"alliance.php?mode=ainfo&a=".$StatRow['ally_id']."\">".$StatRow['ally_name']."</a>";
		}
		// FIN FIX
		$parse['player_points']   = pretty_number( $StatRow[ $Order ] );
		$parse['stat_values']    .= parsetemplate(gettemplate('stat_playertable'), $parse);
		$start++;
	}
}
$page = parsetemplate(gettemplate('stat_body'), $parse);
display($page, $lang['stat_title']);

// -----------------------------------------------------------------------------------------------------------
// History version
// 0.1a - Mise au propre
?>